﻿/*****************************************************************//**
 * @file   VAOneXMLAdaptorPhysicalPropertyGeneralLaminate.h
 * @brief  VAOne读写适配器自由组合板
 *
 * @author liuzhiyuan(liuzhiyuan@diso.cn)
 * @date   2024-11-05
 *********************************************************************/
#ifndef VAONEXMLADAPTORPHYSICALPROPERTYGENERALLAMINATE_H
#define VAONEXMLADAPTORPHYSICALPROPERTYGENERALLAMINATE_H

#include "FITKVAOneXMLIOAPI.h"
#include "FITKAbstractVAOneXMLAdaptor.h"
#include "FITK_Kernel/FITKCore/FITKCoreMacros.h"
#include "FITK_Kernel/FITKAdaptor/FITKIOAdaptorFactory.h"

namespace IO
{
    /**
     * @brief   VAOne读写适配器自由阻尼层合板
     * @author  liuzhiyuan(liuzhiyuan@diso.cn)
     * @date    2024-11-05
     */
    class FITKVAOneXMLIOAPI VAOneXMLAdaptorPhysicalPropertyGeneralLaminate : public FITKAbstractVAOneXMLAdaptor
    {
        FITKCLASS(IO, VAOneXMLAdaptorPhysicalPropertyGeneralLaminate);
        public:
       /**
        * @brief   构造函数
        * @author  liuzhiyuan(liuzhiyuan@diso.cn)
        * @date    2024-11-05
        */
       explicit VAOneXMLAdaptorPhysicalPropertyGeneralLaminate()= default;
       /**
        * @brief   析构函数
        * @author  liuzhiyuan(liuzhiyuan@diso.cn)
        * @date    2024-11-05
        */
       ~VAOneXMLAdaptorPhysicalPropertyGeneralLaminate() = default;
       /**
        * @brief   适配器读数据
        * @return  是否执行成功
        * @author  liuzhiyuan(liuzhiyuan@diso.cn)
        * @date    2024-11-05
        */
       bool adaptR() override;
       /**
        * @brief   适配器写数据
        * @return  是否执行成功
        * @author  liuzhiyuan(liuzhiyuan@diso.cn)
        * @date    2024-11-05
        */
       bool adaptW() override;

    private:
       /**
        * @brief   读取自由阻尼层合板数据
        * @return  是否执行成功
        * @author  liuzhiyuan(liuzhiyuan@diso.cn)
        * @date    2024-11-05
        */
       bool readGeneralLaminate();
       /**
        * @brief   写自由阻尼层合板数据
        * @return  是否执行成功
        * @author  liuzhiyuan(liuzhiyuan@diso.cn)
        * @date    2024-11-05
        */
       bool writeGeneralLaminate();
       /**
        * @brief   读取自由阻尼层合板层数据
        * @return  是否执行成功
        * @author  liuzhiyuan(liuzhiyuan@diso.cn)
        * @date    2024-11-05
        */
       bool readGeneralLaminateIsoLayer();
       /**
        * @brief   写自由阻尼层合板层数据
        * @return  是否执行成功
        * @author  liuzhiyuan(liuzhiyuan@diso.cn)
        * @date    2024-11-05
        */
       bool writeGeneralLaminateIsoLayer();
   };
   Register2FITKIOAdaptorFactory(VAOneXML, Acoustics::FITKPhyscisPropertyGeneralLaminate, VAOneXMLAdaptorPhysicalPropertyGeneralLaminate)
}

#endif // VAONEXMLADAPTORPHYSICALPROPERTYGENERALLAMINATE_H
